package cn.hiapi.core.basic.redis;

/**
 * @author AdinZ
 * @date 2024/1/12 14:35
 */

/**
 * @author AdinZ
 * @date 2022/2/22 18:18
 */
public interface ILockService {
    /**
     * 锁
     *
     * @param k
     * @param <K>
     * @return false 锁失败,已经存在锁
     */
    <K> boolean lock(K k);

    /**
     * 缓存锁
     *
     * @param k
     * @param timeout
     * @param <K>
     * @return
     */
    <K> boolean lock(K k, long timeout);

    <K> boolean isLock(K k);

    <K> void lockThr(K k);

    <K> void lockThr(K k, long timeout);

    <K> void unlock(K k);


}
